It is becoming increasingly popular to send photographs, scanned documents, slide shows, PDF documents and other types of attachments in email messages. Each attachment is provided with a filename and is linked to an email message in a manner that is well known in the art. Often, a single email message may contain multiple attachments.
On portable electronic devices, there is generally a delay between a request to view an attachment by a user and display of the attachment on the display screen of the device. The primary cause of the delay is server processing time, however, network speed is also a contributing factor. The delay can often exceed 20-30 seconds. A shorter waiting period between requesting and viewing an attachment on a portable electronic device is therefore desirable.
One solution to the foregoing is to send an initial data request from the attachment viewer to a server in response to receipt of an email message including the attachment by the portable electronic device, accessing a graph structure representing a map of the attachment from the server, the graph structure having been previously built on the server, reconstructing the graph structure in response to the initial request and encapsulating the graph structure in data having an attachment viewer readable format, the data being stored on the server and sending an initial chunk of the data to the attachment viewer, the initial chunk of the data being stored on the portable electronic device; wherein the initial chunk of the data is received prior to a request to view the attachment being sent to the server.
Since the attachment data is divided into multiple chunks, whenever the user scrolls through the document and reaches a certain character count threshold (before the end of the latest downloaded data chunk), a request for the next available chunk is issued by the attachment viewer to the attachment server. However, the foregoing method pre-fetches only the initial chunk of data and, due to the size of such data chunks and the complexity of processing the data chunks within the attachment server side, the user continues to wait several seconds before the next chunk data is available for viewing.